/*
* Copyright 2016 Yonyou Auto Information Technology（Shanghai） Co., Ltd. All Rights Reserved.
*
* This software is published under the terms of the YONYOU Software
* License version 1.0, a copy of which has been included with this
* distribution in the LICENSE.txt file.
*
* @Project Name : marketing-wechat-open-api
*
* @File name : PotentialUserServiceInterface.java
*
* @Author : Administrator
*
* @Date : 2016年12月21日
*
----------------------------------------------------------------------------------
*     Date       Who       Version     Comments
* 1. 2016年12月21日    Administrator    1.0
*
*
*
*
----------------------------------------------------------------------------------
*/
	
package com.yonyou.gmcc.gateway.wechat.service.interfaces;

import java.util.List;
import java.util.Map;

import org.marketing.common.dto.customerInfo.CarInfoDto;
import org.marketing.common.dto.customerInfo.EditCarinfoDto;
import org.marketing.common.dto.customerInfo.MemberDto;
import org.marketing.common.dto.customerInfo.PushHistoryDto;
import org.marketing.common.dto.customerInfo.PotentialUserDto;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

/**
*
* @author Administrator
* TODO description
* @date 2016年12月21日
*/

@FeignClient(name="service-customerInfo")
public interface PotentialUserServiceInterface {

    /**
    * 个人中心信息查询
    * @author QianKun
    * @date 2016年12月21日
    * @param potentialUserId
    * @return
    */
    @RequestMapping(value = "/potentialUsers/api/v1/{potentialUserId}", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
    public List<PotentialUserDto> getPersonalData(@PathVariable("potentialUserId") Long potentialUserId);
   
    /**
    * 个人中心头像查询
    * @author QianKun
    * @date 2016年12月21日
    * @param potentialUserId
    * @return
    */
    @RequestMapping(value = "/potentialUsers/api/v1/personalPhoto/{potentialUserId}", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
    public List<PotentialUserDto> getPersonalPhoto(@PathVariable("potentialUserId") Long potentialUserId);
  
    /**
    * 个人中心保险日期查询
    * @author QianKun
    * @date 2016年12月30日
    * @param vin
    * @return
    */
    @RequestMapping(value = "/potentialUsers/api/v1/personalInsure/{vin}", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
    public List<PotentialUserDto> getInsureData(@PathVariable("vin") String vin);
    
    /**
    * 个人中心保养日期查询
    * @author QianKun
    * @date 2016年12月30日
    * @param vin
    * @return
    */
    @RequestMapping(value = "/potentialUsers/api/v1/personalMaintain/{vin}", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
    public List<PotentialUserDto> getMTData(@PathVariable("vin") String vin);


    /**
    * 爱车编辑页面查询
    * @author QianKun
    * @date 2017年1月12日
    * @param carId
    * @return
    */
    @RequestMapping(value = "/potentialUsers/api/v1/editCarinfo/{carId}", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
    public List<EditCarinfoDto> getCarInfoByCarId(@PathVariable("carId") String carId);

    /**
    * 个人中心-我的消息列表查询
    * @author QianKun
    * @date 2017年1月16日
    * @param receiverId
    * @return
    */
    @RequestMapping(value = "/potentialUsers/api/v1/myMessage", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
    public List<PushHistoryDto> getMymessage(@RequestParam("receiverId") String receiverId);

    /**
    * 会员中心信息查询
    * @author QianKun
    * @date 2017年2月28日
    * @param potentialUserId
    * @return
    */
    @RequestMapping(value = "/potentialUsers/api/v1/memberInfo", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
    public List<MemberDto> getMemberInfo(@RequestParam("potentialUserId") Long potentialUserId);

    
    /**
    * 更新会员信息(车主)
    * @author QianKun
    * @date 2017年3月1日
    * @param memberDto
    * @return
    */
    @RequestMapping(value = "/potentialUsers/api/v1/updateCarOwnerInfo", method = RequestMethod.POST)
    @ResponseBody
    public Map<String, Object> updateCarOwnerInfo(@RequestBody MemberDto memberDto);

    /**
    * 更新会员信息(潜客)
    * @author QianKun
    * @date 2017年3月1日
    * @param memberDto
    * @return
    */
    @RequestMapping(value = "/potentialUsers/api/v1/updatePotentialInfo", method = RequestMethod.POST)
    @ResponseBody
    public Map<String, Object> updatePotentialInfo(@RequestBody MemberDto memberDto);

    /**
    * 更新会员信息(顾问)
    * @author QianKun
    * @date 2017年3月1日
    * @param memberDto
    * @return
    */
    @RequestMapping(value = "/potentialUsers/api/v1/updateCounselorInfo", method = RequestMethod.POST)
    @ResponseBody
    public Map<String, Object> updateCounselorInfo(@RequestBody MemberDto memberDto);

   
}
